﻿using System;
using System.Collections.Generic;
using System.Runtime.Serialization;

namespace JTLeigh.Commerce.Spencer.Features.ProductImages.Service.Contracts.Runtime.GetProductImages
{

	/// <summary>
	/// Response data contract for the <see cref="IProductImagesRuntimeService.GetProductImages"/>
	/// operation.
	/// </summary>
    [DataContract(Name = "GetProductImagesRes", Namespace = "http://schemas.jtleigh.com/Commerce/Spencer/Features/ProductImages/1.0/Runtime/GetProductImages/")]
    public class GetProductImagesResponse
	{

		/// <summary>
		/// Gets or sets a dictionary of the images of the specified product.
		/// </summary>
		/// <value>An <see cref="IDictionary{TKey,TValue}"/> of <see cref="ProductImage"/> keyed by
		/// image identifier <see cref="Guid"/>.</value>
		[DataMember(Name = "Images", IsRequired = true)]
		public IDictionary<Guid, ProductImage> Images { get; set; }

		/// <summary>
		/// Gets or sets a dictionary of all view information relevant to the images of the 
		/// specified product.
		/// </summary>
		/// <value>An <see cref="IDictionary{TKey,TValue}"/> of <see cref="ProductImageView"/> 
		/// keyed by view identifier <see cref="Guid"/>.</value>
		[DataMember(Name = "Views", IsRequired = true)]
		public IDictionary<Guid, ProductImageView> Views { get; set; }

		/// <summary>
		/// Gets or sets a dictionary of all size information relevant to the images of the 
		/// specified product.
		/// </summary>
		/// <value>An <see cref="IDictionary{TKey,TValue}"/> of <see cref="ProductImageSize"/> 
		/// keyed by size identifier <see cref="Guid"/>.</value>
		[DataMember(Name = "Sizes", IsRequired = true)]
		public IDictionary<Guid, ProductImageSize> Sizes { get; set; }

	}

}
